home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Very Best of Atari Inside
/
The Very Best of Atari Inside 1.iso
/
mint
/
mntlib43
/
mntlib
/
getpages.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-22
|
1KB
|
63 lines
/*
* getpagesize() for MiNT
* written by Eric R. Smith and placed in the public
* domain
*/
#include <unistd.h>
#include <osbind.h>
#include <string.h>
#include <mintbind.h>
#define DEF_PAGESIZE 1024 /* default page size for TOS */
extern int __mint;
static void memstats __PROTO((long *));
/*
* memstats: get information about memory usage, and put it into
* the 4 long words pointed to by "meminfo" as follows:
* meminfo[0] number of free pages
* meminfo[1] total number of pages being managed
* meminfo[2] page size
* meminfo[3] reserved, always 1
* works only under MiNT
*/
static void
memstats(meminfo)
long *meminfo;
{
int olddrv;
char oldpath[128];
olddrv = Dgetdrv(); /* save current drive */
Dsetdrv('U'-'A'); /* change to drive U: */
Dgetpath(oldpath, 0); /* save current path for drive U: */
if (oldpath[0] == 0)
strcpy(oldpath, "\\");
Dsetpath("U:\\PROC"); /* change to the PROC directory */
/* note that Dfree() on drive U: is sensitive
* to the path, so we must do this!
*/
Dfree((_DISKINFO*)meminfo, 0); /* get memory statistics */
Dsetpath(oldpath); /* restore old path for drive U: */
Dsetdrv(olddrv); /* restore old drive */
}
int
getpagesize()
{
long meminfo[4];
if (__mint < 9)
return DEF_PAGESIZE;
/* get the page size by looking at U:\PROC */
memstats(meminfo);
return (int) meminfo[2];
}